package NO10_Math;

/**
 * 2025-08-15
 * 力扣 - 191. 位1的个数
 * <p>
 * 给定一个正整数 n，编写一个函数，获取一个正整数的二进制形式并返回其二进制表达式中 设置位 的个数（也被称为汉明重量）。
 */
public class HammingWeightMain {
    public static void main(String[] args) {
        System.out.println(hammingWeight(11));
    }

//    public static int hammingWeight(int n) {
//        int count = 0;
//        while (n != 0) {
//            count++;
//            n = n & (n - 1);
//        }
//        return count;
//    }

    // 转换为二进制，找出1的个数
    public static int hammingWeight(int n) {
        char[] charArray = Integer.toBinaryString(n).toCharArray();
        int count = 0;
        for (int i = 0; i < charArray.length; i++) {
            if (charArray[i] == '1') {
                count++;
            }
        }
        return count;
    }
}
